笔记:python的time模块 | 您所在的位置:网站首页 › python tips数据集 › 笔记:python的time模块 |
主要功能用于时间表示方法之间的转换和程序的控制。在python用三种方式来表示时间,分别是时间戳、格式化时间字符串和结构化时间。time 模块的方法大部分是针对这几种时间格式进行输出,处理和转化 目录 一、时间对象 1.时间戳(timestamp) 2.时间元组(struct_time) 3.格式化时间字符串 二、相互转换的一些方法: 1. 时间元组——时间戳 一些关于时区概念: 2. 时间元组——标准格式: 3. 时间戳——标准格式:time.ctime() 其中转换关系如下: 三、程序时间控制 1. time.sleep(): 2. time.perf_counter() 3. time.process_time() 例子区别:有一个0.5s的程序,process_time() 是不计sleep时间的 一、时间对象 1.时间戳(timestamp)以格林威治时间1970年01月01日00时00分00秒为零点(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒),开始计算的总秒数。对时间戳时间戳单位最适于做日期运算。1970年之前的日期无法以此表示。太遥远的日期也不行,UNIX和Windows只支持到2038年。 时间戳通过 time.time() 来获取 import time print(time.time()) #获取当前时间戳 1682237692.9241743 2.时间元组(struct_time)python用一个元组封装起来的9组数字处理时间。struct_time元组就是这种结构。 序号字段属性值04位数年tm_year正整数1月tm_mon1 到 122日tm_mday1到313小时tm_hour0到234分钟tm_min0到595秒tm_sec0到61 (60或61 是闰秒)6一周的第几日tm_wday0到6 (0是周一)7一年的第几日tm_yday1到366 (儒略历)8夏令时tm_isdst-1, 0, 1, -1是决定是否为夏令时的旗帜时间元组可通过 time.localtime() 获取 print(time.localtime()) #获取当前结构化时间 time.struct_time(tm_year=2023, tm_mon=4, tm_mday=23, tm_hour=16, tm_min=14, tm_sec=52, tm_wday=6, tm_yday=113, tm_isdst=0) 3.格式化时间字符串以文字格式输出的时间,python中时间日期格式化符号,就是年月日时分秒这样的我们常见的时间字符串 python中时间日期格式化符号: %y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)%h 月份的英文缩写%I 12小时制小时数(01-12)%M 分钟数(00-59)%S 秒(00-59)%a 本地简化星期名称%A 本地完整星期名称%b 本地简化的月份名称%B 本地完整的月份名称%c 本地相应的日期表示和时间表示%j 年内的一天(001-366)%p 本地A.M.或P.M.的等价符%U 一年中的星期数(00-53)星期天为星期的开始%w 星期(0-6),星期天为星期的开始%W 一年中的星期数(00-53)星期一为星期的开始%x 本地相应的日期表示%X 本地相应的时间表示%Z 当前时区的名称%% %号本身 二、相互转换的一些方法: 1. 时间元组——时间戳(1)元组→时间戳 time.mktime print(time.mktime((1999,4,26,14,30,27,0,0,0))) #结构化时间元组-→时间戳 925108227.0(2)时间戳→元组 time.localtime 与time.gmtime print(time.localtime(1234567890)) #时间戳→时间元组(当地): print(time.gmtime(1234567890)) #时间戳→时间元组(格林威治) #比较不同结果:区别在于此时是我国时间与格林威治时间,比我这里早了八小时 time.struct_time(tm_year=2009, tm_mon=2, tm_mday=14, tm_hour=7, tm_min=31, tm_sec=30, tm_wday=5, tm_yday=45, tm_isdst=0) time.struct_time(tm_year=2009, tm_mon=2, tm_mday=13, tm_hour=23, tm_min=31, tm_sec=30, tm_wday=4, tm_yday=44, tm_isdst=0) 几个关于时区概念: GMT:即格林威治标准时间。(目前只用到这个)UTC:世界协调时间,与GMT类似,但比格林威治更精确。DST:D即Daylight,表示夏令时。CST:美国、澳大利亚、中国、古巴的标准时间。详见:https://www.cnblogs.com/tosee/p/5538007.html 2. 时间元组——格式化字符串:(1)time.asctime() print(time.asctime((1999,4,26,14,30,27,0,0,0))) #由时间元组获取标准格式字符串 Mon Apr 26 14:30:27 1999(2)时间元组→自定义格式:time.strftime(,) print(time.strftime('%Y.%m.%d-%H:%M:%S',(1999,4,26,14,30,27,0,0,0))) #结构化时间元组获取自定义格式时间 1999.04.26-14:30:27(3) 指定格式→时间元组:time.strptime(,) 需注意的是,提供的字符串要和 format 参数的格式一一对应。time.strftime()中的f代表format,可以记成str format time(字符串格式的时间) ;time.strptime()的p代表parse,可以记为str parse time(字符串解析成时间)。 print(time.strptime('1999/04/26 14:52:30',"%Y/%m/%d %H:%M:%S")) time.struct_time(tm_year=1999, tm_mon=4, tm_mday=26, tm_hour=14, tm_min=52, tm_sec=30, tm_wday=0, tm_yday=116, tm_isdst=-1) 3. 时间戳——标准格式:time.ctime() print(time.ctime(1234567890)) #根据时间戳获取标准格式字符串 Sat Feb 14 07:31:30 2009 其中转换关系如下:图片源自:https://zhuanlan.zhihu.com/p/427830258 三、程序时间控制 1. time.sleep():推迟调用线程的运行的秒数:time.sleep()。 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) #格式化当前时间 time.sleep(1) # 暂停一秒 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) 2023-04-24 11:10:41 2023-04-24 11:10:42 2. time.perf_counter()返回一个CPU级别的精确时间计数值,包含整个系统的 sleep() 时间,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义 start=time.perf_counter() print(start) #起始时间 time.sleep(1) end=time.perf_counter() print(end) #结束时间 print(end-start) #时间间隔 0.0263355 1.026681 1.0003454999999999 3. time.process_time()返回的是当前进程的系统和用户CPU时间之和的值(以秒为单位)。它不包括 sleep() 经过的睡眠时间。 例子区别:有一个0.5s的程序,process_time() 是不计sleep时间的 import time a = 0 t1 = time.perf_counter() for i in range(2**23): a = a + 1 t2 = time.perf_counter() print(t2-t1) 0.5034770000000001 #这个程序的运行时间是0.5s import time a = 0 t1 = time.perf_counter() time.sleep(1) #程序睡眠1秒 for i in range(2**23): a = a + 1 t2 = time.perf_counter() print(t2-t1) 1.5027289 #包含1s睡眠时间 #程序3 import time a = 0 t1 = time.process_time() time.sleep(1) #程序睡眠1秒 for i in range(2**23): a = a + 1 t2 = time.process_time() print(t2-t1) 0.5 #不包含1s的睡眠时间 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |